<?php

include_once ('com/alibaba/openapi/client/entity/SDKDomain.class.php');
include_once ('com/alibaba/openapi/client/entity/ByteArray.class.php');
include_once ('AlibabaTradeFastCreateOrderParam/AlibabaTradeFastAddress.class.php');
include_once ('AlibabaTradeFastCreateOrderParam/AlibabaTradeFastCargo.class.php');
include_once ('AlibabaTradeFastCreateOrderParam/AlibabaTradeFastInvoice.class.php');
include_once ('AlibabaTradeFastCreateOrderParam/AlibabaTradeFastCreateOrderEncryptOutOrderInfo.class.php');

class AlibabaTradeFastCreateOrderParam {

        
        /**
    * @return general（创建大市场订单），fenxiao（创建分销订单）,saleproxy流程将校验分销关系,paired(火拼下单),boutiquefenxiao(精选货源分销价下单，采购量1个使用包邮)， boutiquepifa(精选货源批发价下单，采购量大于2使用).
    */
        public function getFlow() {
        $tempResult = $this->sdkStdResult["flow"];
        return $tempResult;
    }
    
    /**
     * 设置general（创建大市场订单），fenxiao（创建分销订单）,saleproxy流程将校验分销关系,paired(火拼下单),boutiquefenxiao(精选货源分销价下单，采购量1个使用包邮)， boutiquepifa(精选货源批发价下单，采购量大于2使用).     
     * @param String $flow     
     * 参数示例：<pre>general</pre>     
     * 此参数必填     */
    public function setFlow( $flow) {
        $this->sdkStdResult["flow"] = $flow;
    }
    
        
        /**
    * @return 子账号ID
    */
        public function getSubUserId() {
        $tempResult = $this->sdkStdResult["subUserId"];
        return $tempResult;
    }
    
    /**
     * 设置子账号ID     
     * @param Long $subUserId     
     * 参数示例：<pre>222222</pre>     
     * 此参数必填     */
    public function setSubUserId( $subUserId) {
        $this->sdkStdResult["subUserId"] = $subUserId;
    }
    
        
        /**
    * @return 买家留言
    */
        public function getMessage() {
        $tempResult = $this->sdkStdResult["message"];
        return $tempResult;
    }
    
    /**
     * 设置买家留言     
     * @param String $message     
     * 参数示例：<pre>留言</pre>     
     * 此参数必填     */
    public function setMessage( $message) {
        $this->sdkStdResult["message"] = $message;
    }
    
        
        /**
    * @return 收货地址信息
    */
        public function getAddressParam() {
        $tempResult = $this->sdkStdResult["addressParam"];
        return $tempResult;
    }
    
    /**
     * 设置收货地址信息     
     * @param AlibabaTradeFastAddress $addressParam     
     * 参数示例：<pre>{"address":"网商路699号","phone": "0517-88990077","mobile": "15251667788","fullName": "张三","postCode": "000000","areaText": "滨江区","townText": "","cityText": "杭州市","provinceText": "浙江省"}</pre>     
     * 此参数必填     */
    public function setAddressParam(AlibabaTradeFastAddress $addressParam) {
        $this->sdkStdResult["addressParam"] = $addressParam;
    }
    
        
        /**
    * @return 商品信息
    */
        public function getCargoParamList() {
        $tempResult = $this->sdkStdResult["cargoParamList"];
        return $tempResult;
    }
    
    /**
     * 设置商品信息     
     * @param array include @see AlibabaTradeFastCargo[] $cargoParamList     
     * 参数示例：<pre>[{"specId": "b266e0726506185beaf205cbae88530d","quantity": 5,"offerId": 554456348334},{"specId": "2ba3d63866a71fbae83909d9b4814f01","quantity": 6,"offerId": 554456348334}]</pre>     
     * 此参数必填     */
    public function setCargoParamList(AlibabaTradeFastCargo $cargoParamList) {
        $this->sdkStdResult["cargoParamList"] = $cargoParamList;
    }
    
        
        /**
    * @return 发票信息
    */
        public function getInvoiceParam() {
        $tempResult = $this->sdkStdResult["invoiceParam"];
        return $tempResult;
    }
    
    /**
     * 设置发票信息     
     * @param AlibabaTradeFastInvoice $invoiceParam     
     * 参数示例：<pre>{"invoiceType":0,"cityText": "杭州市","provinceText": "浙江省","address": "网商路699号","phone": "0517-88990077","mobile": "15251667788","fullName": "张五","postCode": "000000","areaText": "滨江区","companyName": "测试公司","taxpayerIdentifier": "123455"}</pre>     
     * 此参数必填     */
    public function setInvoiceParam(AlibabaTradeFastInvoice $invoiceParam) {
        $this->sdkStdResult["invoiceParam"] = $invoiceParam;
    }
    
        
        /**
    * @return 开放平台业务码,区分具体业务,isv_fxgl等
    */
        public function getIsvBizTypeStr() {
        $tempResult = $this->sdkStdResult["isvBizTypeStr"];
        return $tempResult;
    }
    
    /**
     * 设置开放平台业务码,区分具体业务,isv_fxgl等     
     * @param String $isvBizTypeStr     
     * 参数示例：<pre>请咨询运营，不同解决方案使用不同业务码</pre>     
     * 此参数必填     */
    public function setIsvBizTypeStr( $isvBizTypeStr) {
        $this->sdkStdResult["isvBizTypeStr"] = $isvBizTypeStr;
    }
    
        
        /**
    * @return erp分销场景时传入true。会修改默认的isvBizType为erp_buy。其他场景不用传入
    */
        public function getIsvBizTypeErp() {
        $tempResult = $this->sdkStdResult["isvBizTypeErp"];
        return $tempResult;
    }
    
    /**
     * 设置erp分销场景时传入true。会修改默认的isvBizType为erp_buy。其他场景不用传入     
     * @param Boolean $isvBizTypeErp     
     * 参数示例：<pre>false</pre>     
     * 此参数必填     */
    public function setIsvBizTypeErp( $isvBizTypeErp) {
        $this->sdkStdResult["isvBizTypeErp"] = $isvBizTypeErp;
    }
    
        
        /**
    * @return 拍单场景时传入true。会修改默认的isvBizTyp为isv_pd_buy
    */
        public function getIsvBizTypePD() {
        $tempResult = $this->sdkStdResult["isvBizTypePD"];
        return $tempResult;
    }
    
    /**
     * 设置拍单场景时传入true。会修改默认的isvBizTyp为isv_pd_buy     
     * @param Boolean $isvBizTypePD     
     * 参数示例：<pre>false</pre>     
     * 此参数必填     */
    public function setIsvBizTypePD( $isvBizTypePD) {
        $this->sdkStdResult["isvBizTypePD"] = $isvBizTypePD;
    }
    
        
        /**
    * @return 店铺优惠ID，通过“创建订单前预览数据接口”获得。为空默认使用默认优惠
    */
        public function getShopPromotionId() {
        $tempResult = $this->sdkStdResult["shopPromotionId"];
        return $tempResult;
    }
    
    /**
     * 设置店铺优惠ID，通过“创建订单前预览数据接口”获得。为空默认使用默认优惠     
     * @param String $shopPromotionId     
     * 参数示例：<pre>itemCoupon-5600812521_31032085284-398517001570</pre>     
     * 此参数必填     */
    public function setShopPromotionId( $shopPromotionId) {
        $this->sdkStdResult["shopPromotionId"] = $shopPromotionId;
    }
    
        
        /**
    * @return 由于不同的商品支持的交易方式不同，没有一种交易方式是全局通用的，所以当前下单可使用的交易方式必须通过下单预览接口的tradeModeNameList获取。交易方式类型说明：assureTrade（交易4.0通用担保交易），alipay（大市场通用的支付宝担保交易（目前在做切流，后续会下掉）），period（普通账期交易）, assure（大买家企业采购询报价下单时需要使用的担保交易流程）, creditBuy（诚E赊），bank（银行转账），631staged（631分阶段付款），37staged（37分阶段）；此字段不传则系统默认会选取一个可用的交易方式下单，如果开通了诚E赊默认是creditBuy（诚E赊），未开通诚E赊默认使用的方式是支付宝担宝交易。
    */
        public function getTradeType() {
        $tempResult = $this->sdkStdResult["tradeType"];
        return $tempResult;
    }
    
    /**
     * 设置由于不同的商品支持的交易方式不同，没有一种交易方式是全局通用的，所以当前下单可使用的交易方式必须通过下单预览接口的tradeModeNameList获取。交易方式类型说明：assureTrade（交易4.0通用担保交易），alipay（大市场通用的支付宝担保交易（目前在做切流，后续会下掉）），period（普通账期交易）, assure（大买家企业采购询报价下单时需要使用的担保交易流程）, creditBuy（诚E赊），bank（银行转账），631staged（631分阶段付款），37staged（37分阶段）；此字段不传则系统默认会选取一个可用的交易方式下单，如果开通了诚E赊默认是creditBuy（诚E赊），未开通诚E赊默认使用的方式是支付宝担宝交易。     
     * @param String $tradeType     
     * 参数示例：<pre>assureTrade</pre>     
     * 此参数必填     */
    public function setTradeType( $tradeType) {
        $this->sdkStdResult["tradeType"] = $tradeType;
    }
    
        
        /**
    * @return 下游加密订单信息，用于下游平台打单使用。如果下游明文，encryptOrder传入false
    */
        public function getEncryptOutOrderInfo() {
        $tempResult = $this->sdkStdResult["encryptOutOrderInfo"];
        return $tempResult;
    }
    
    /**
     * 设置下游加密订单信息，用于下游平台打单使用。如果下游明文，encryptOrder传入false     
     * @param AlibabaTradeFastCreateOrderEncryptOutOrderInfo $encryptOutOrderInfo     
     * 参数示例：<pre>{}</pre>     
     * 此参数必填     */
    public function setEncryptOutOrderInfo(AlibabaTradeFastCreateOrderEncryptOutOrderInfo $encryptOutOrderInfo) {
        $this->sdkStdResult["encryptOutOrderInfo"] = $encryptOutOrderInfo;
    }
    
        
        /**
    * @return 批发团instanceId,从alibaba.pifatuan.product.list获取
    */
        public function getInstanceId() {
        $tempResult = $this->sdkStdResult["instanceId"];
        return $tempResult;
    }
    
    /**
     * 设置批发团instanceId,从alibaba.pifatuan.product.list获取     
     * @param String $instanceId     
     * 参数示例：<pre>4063139_1662080400000</pre>     
     * 此参数必填     */
    public function setInstanceId( $instanceId) {
        $this->sdkStdResult["instanceId"] = $instanceId;
    }
    
        
        /**
    * @return 分账普通下单采购单id，交易flow为“proxy”
    */
        public function getProxySettleRecordId() {
        $tempResult = $this->sdkStdResult["proxySettleRecordId"];
        return $tempResult;
    }
    
    /**
     * 设置分账普通下单采购单id，交易flow为“proxy”     
     * @param String $proxySettleRecordId     
     * 参数示例：<pre>4051300002</pre>     
     * 此参数必填     */
    public function setProxySettleRecordId( $proxySettleRecordId) {
        $this->sdkStdResult["proxySettleRecordId"] = $proxySettleRecordId;
    }
    
        
        /**
    * @return 回流订单下游平台 淘宝-thyny，天猫-tm，淘特-taote，阿里巴巴C2M-c2m，京东-jingdong，拼多多-pinduoduo，微信-weixin，跨境-kuajing，快手-kuaishou，有赞-youzan，抖音-douyin，寺库-siku，美团团好货-meituan，小红书-xiaohongshu，当当-dangdang，苏宁-suning，大V店-davdian，行云-xingyun，蜜芽-miya，菠萝派商城-boluo，快团团-kuaituantuan，其他-other
    */
        public function getFenxiaoChannel() {
        $tempResult = $this->sdkStdResult["fenxiaoChannel"];
        return $tempResult;
    }
    
    /**
     * 设置回流订单下游平台 淘宝-thyny，天猫-tm，淘特-taote，阿里巴巴C2M-c2m，京东-jingdong，拼多多-pinduoduo，微信-weixin，跨境-kuajing，快手-kuaishou，有赞-youzan，抖音-douyin，寺库-siku，美团团好货-meituan，小红书-xiaohongshu，当当-dangdang，苏宁-suning，大V店-davdian，行云-xingyun，蜜芽-miya，菠萝派商城-boluo，快团团-kuaituantuan，其他-other     
     * @param String $fenxiaoChannel     
     * 参数示例：<pre>douyin</pre>     
     * 此参数必填     */
    public function setFenxiaoChannel( $fenxiaoChannel) {
        $this->sdkStdResult["fenxiaoChannel"] = $fenxiaoChannel;
    }
    
        
        /**
    * @return 外部订单号,可用于幂等。通过订单列表接口可以传入该值查询订单信息
    */
        public function getOutOrderId() {
        $tempResult = $this->sdkStdResult["outOrderId"];
        return $tempResult;
    }
    
    /**
     * 设置外部订单号,可用于幂等。通过订单列表接口可以传入该值查询订单信息     
     * @param String $outOrderId     
     * 参数示例：<pre>123</pre>     
     * 此参数必填     */
    public function setOutOrderId( $outOrderId) {
        $this->sdkStdResult["outOrderId"] = $outOrderId;
    }
    
        
        /**
    * @return 预选的支付渠道，用作财务订单分流。订单信息查询接口返回：result.exAttributes.preSelectPayChannel ，该值是创建订单接口时传入的预选的支付渠道标记。
    */
        public function getPreSelectPayChannel() {
        $tempResult = $this->sdkStdResult["preSelectPayChannel"];
        return $tempResult;
    }
    
    /**
     * 设置预选的支付渠道，用作财务订单分流。订单信息查询接口返回：result.exAttributes.preSelectPayChannel ，该值是创建订单接口时传入的预选的支付渠道标记。     
     * @param String $preSelectPayChannel     
     * 参数示例：<pre>alipay</pre>     
     * 此参数必填     */
    public function setPreSelectPayChannel( $preSelectPayChannel) {
        $this->sdkStdResult["preSelectPayChannel"] = $preSelectPayChannel;
    }
    
        
        /**
    * @return 弃用
    */
        public function getNoUseRedEnvelope() {
        $tempResult = $this->sdkStdResult["noUseRedEnvelope"];
        return $tempResult;
    }
    
    /**
     * 设置弃用     
     * @param Boolean $noUseRedEnvelope     
     * 参数示例：<pre>false</pre>     
     * 此参数必填     */
    public function setNoUseRedEnvelope( $noUseRedEnvelope) {
        $this->sdkStdResult["noUseRedEnvelope"] = $noUseRedEnvelope;
    }
    
        
        /**
    * @return 使用红包：n不使用，y使用。默认使用红包
    */
        public function getUseRedEnvelope() {
        $tempResult = $this->sdkStdResult["useRedEnvelope"];
        return $tempResult;
    }
    
    /**
     * 设置使用红包：n不使用，y使用。默认使用红包     
     * @param String $useRedEnvelope     
     * 参数示例：<pre>n</pre>     
     * 此参数必填     */
    public function setUseRedEnvelope( $useRedEnvelope) {
        $this->sdkStdResult["useRedEnvelope"] = $useRedEnvelope;
    }
    
        
    private $sdkStdResult=array();
    
    public function getSdkStdResult(){
    	return $this->sdkStdResult;
    }

}
?>